package com.example;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.RandomUtil;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;
import java.util.Set;

@SpringBootTest
public class RandomUtilTest {

    @Test
    public void testRandom() {
        // 获得指定范围内的随机数，产生一个[10, 100)的随机数
        int c = RandomUtil.randomInt(10, 100);
        System.out.println(c);

        // 获得一个指定长度的随机的字符串（只包含数字和字符）
        String randomString = RandomUtil.randomString(10);
        System.out.println(randomString);

        // 获得一个指定长度的随机的字符串（只包含数字）
        String randomNumbers = RandomUtil.randomNumbers(6);
        System.out.println(randomNumbers);

        // 获取一个指定集合中的指定数量的随机元素
        List<Integer> integers = RandomUtil.randomEleList(CollUtil.newArrayList(1, 2, 3, 4, 5, 6), 2);
        System.out.println(integers);

        // 随机获得列表中的一定量的不重复元素，返回Set
        Set<Integer> set = RandomUtil.randomEleSet(CollUtil.newArrayList(1, 2, 3, 4, 5, 6), 2);

        // 获得一个随机的字符
        char randomChinese = RandomUtil.randomChinese();
        System.out.println(randomChinese);
    }

    @Test
    public void testRandomUUID() {
        // 生成的UUID是带-的字符串，类似于：a5c8a5e8-df2b-4706-bea4-08d0939410e3
        String uuid = IdUtil.randomUUID();
        System.out.println(uuid);

        // 生成的是不带-的字符串，类似于：b17f24ff026d40949c85a24f4f375d42
        String simpleUUID = IdUtil.simpleUUID();
        System.out.println(simpleUUID);

        // 生成基于 Twitter 的分布式 ID 生成算法（Snowflake）的 ID
        Snowflake snowflake = IdUtil.getSnowflake();
        System.out.println(snowflake.nextIdStr());
    }
}
